package com.gccloud.design.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gccloud.design.dto.UcBusiShowDto;
import com.gccloud.design.entity.UcBusiShowEntity;
import com.gccloud.design.vo.SequenceVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 实现功能【用户场景展示持久层】
 *
 * @author hu.hongdou
 * @date 2022/2/21
 */
@Mapper
public interface UcBusiShowDao extends BaseMapper<UcBusiShowEntity> {

    /**
     * 基于主键查询用户场景展示实体
     *
     * @param ids 主键
     * @return 用户场景展示实体类列表
     */
    List<UcBusiShowEntity> getMyOrderListByIds(@Param("ids") String ids);

    /**
     * 修改顺序
     *
     * @param sequenceVos 顺序实体
     * @return 序号
     */
    Long changeSequence(@Param("SequenceVo") List<SequenceVo> sequenceVos);

    /**
     * 基于用户账号、模板标识查询用户场景展示实体类
     *
     * @param userName 用户账号
     * @param spec     模板标识
     * @return 用户场景展示实体列表
     */
    List<UcBusiShowDto> getParent(@Param("userName") String userName, @Param("spec") String spec);

    /**
     * 基于用户账号、父节点标识查询用户场景展示实体列表
     *
     * @param userName 用户账号
     * @param parentId 父节点标识
     * @return 用户场景展示实体类列表
     */
    List<UcBusiShowDto> getBusiTree(@Param("userName") String userName, @Param("parentId") Long parentId);

    /**
     * 基于用户账号、业务单类型标识查询用户场景展示实体类
     *
     * @param userName    用户账号
     * @param orderTypeId 业务单类型标识
     * @return 用户场景展示实体类列表
     */
    List<UcBusiShowDto> getBusiByOrderTypeId(@Param("userName") String userName, @Param("orderTypeId") String orderTypeId);
}
